

<!-- <script type="text/javascript"  src="1.js"> 外部引入
    document.write("qwe"); 内部失效
</script> -->


<!-- 变量的定义  存放以便后续利用  variable
声明赋值 -->
<!-- <script type="text/javascript">
    var a;
    a=1;

    var a,b,c = 1;

    var b=2;

    var c=3;
    var d=3;

    var e=1,
        f=1,
        bv;
    
    var a,
        b;

        document.write(e,f,bv);

    var a=1;
    var a=2;  单一var
</script> -->

<!-- 命名规则
    1.变量名必须以英文字母、_ $开头
    2.变量名可以包含英文字母、_ $ 数字  s_$1 -->
    3.变量名不可以用 系统关键字、保留字作为变量名

    <!-- 定义数列arr,定义arr1将arr的值给到arr1,创建新栈的数列[1,2,3]给arr,原来的栈[1,2]位置的值还是arr1 -->
<!-- <script>
    var arr=[1,2];   
    var arr1=arr;
    arr=[1,2,3];
    document.write(arr1);
</script> -->

值类型

原始值     stack   栈内存，把一个栈内存东西放到另一个栈内存是拷贝的关系  var a = 1; var b = a;有底没顶的箱子，栈结构先进后出
Number Boolean String undefined null
js是动态语言，动态语言基本上是解释性语言，解释性语言基本上是脚本语言，声明变量的关键字只有一个var,不需要像其他语言需要Int float char
var a = 1;由值决定类型,不取决于var

其它语言由类型决定值
int a = 1 ;整形，小数不行  char a = 一个字符  String 字符串 String a = 

var a = '' 字符串，描述人类语言

引用值     heap 堆
array Object function RegExp
var arr = [1,"abc",false]

var arr = [1,2];
var arr1 = arr;
arr.push(3);
document.write(arr1);

var arr = [1,2];
var arr1 = arr;
arr = [1,3];
document.write(arr1);
原始值和引用值存的地方不一样

var num = 1;
num1 = num;
num = 2;


基本语法
语句后面用；结束
书写格式规范  = + / — 两边用空格隔开
js语法错误会引发后续代码终止，但不会影响其他代码块。 一个html文件可以放多个jS代码块
<script type="text/javascript">document.write(c)</script>
<script type="text/javascript">var a = 10; </script>
<script type="text/javascript">document.write(a);//可打印上一个代码块的a </script>
错误分两种：低级错误（语法解析错误），标准错误（逻辑错误）



<!-- 运算符
+ 可进行运算，也进行字符串相加 -->
<!-- <script>
    var a = 'a' + 1;
    document.write(a);
</script>

<script>
    var a = 1 + 1 + 'a' + 1 + 1 + (1 + 1) + '(1 + 1)';
    document.write(a);
</script> -->

<!-- <script>
    var a=1;
    var b=a;
    a=2;

    var a=0/0;
    var b=1/0;
    var c = -1 /0;  
    document.write(a);
    document.write(b);
    document.write(c);
</script> -->

<!-- <script>
    var a=1;
    document.write(a++);先执行再++
    document.write(++a);
</script> -->

<!-- <script>
    var a = a + 1; 等价于 a ++;
    var a = a +10; 等价于 a += 10;
</script> -->

<!-- <script>
    var a = 1;
    a += 10 + 1;
    document.write(a);
    // 等价于a = a + 10 +1;
</script> -->

<script>
    var a = 0;
    a %= 5;
    document.write(a);
    // 将0/5的余数赋给自身
</script>

<!-- <script type="text/javascript">
    var a=10;
    var b = ++a - 1 + a++ ;
    document.write(b + "" + a);
</script> -->
<!-- 赋值的顺序自右向左，计算的顺序自左向右 -->
<!-- a=123,b=234,交换a,b的值

<script type=text/javascript>
    var a = 123;
    var b = 234;

    var c=a;
    a=b;
    b=c;

    // a=a+b;
    // b = a - b;
    // a = a - b;
</script> -->


